﻿using System;
using Xoohoo.Infrastructure;
using Xoohoo.Models;
using System.Collections.Generic;
using Xoohoo.Models.InputModels;

namespace Xoohoo.Repositories
{
    public interface IUserRepository : IDisposable
    {
        User GetItem(string username, UserStatus status);
        User GetItem(int userID);
        User GetItem(string name);
        bool IsExists(string username);
        bool IsExists(int userID);
        bool ValidateUser(int userID, string username);
        IPagedList<UserBasic> GetList(UserSearchCriteria criteria, PagingInfo pageingInfo);
        User Save(UserInput userInput);
        bool SetPassword(int userID, string password);
        bool Remove(int userID);
        bool ChangeStatus(int userID, UserStatus status);
    }
}
